home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung CD 2 (Tewi)(1994).iso / doc / graphdoc / ati.txt < prev    next >
Text File  |  1994-01-18  |  22KB  |  534 lines

  1.    ATI Technologies Super VGA Chip Sets.
  2.  
  3.     Board           18810 Dot    ROM BIOS
  4.     Version   Chip  Clock Chip   Label
  5.       V3   18800      no          V3M
  6.       V4   18800-1    no          V4M     
  7.       V5   18800-1    yes         V5M   
  8.       V6   28800-2                      VGA Wonder+
  9.       V7   28800-4                      VGA Wonder XL
  10.            28800-5                      VGA Graphics/Ultra (VGA chip)
  11.        ?   38800-1                      Mach 8.  8514/Ultra and Graphics/Ultra
  12.                                                  (8514/A chip)
  13.            68800                        Mach 32. Graphics Ultra Pro/+
  14.                                                  Combined 8514/A and VGA chip.
  15.  
  16. Support chips:
  17. ATI18810  Clock chip for 18800-1, 28800
  18. ATI18811  Clock chip for 68800
  19.  
  20.     ATI Prism Elite uses Trident 8800CS chips.
  21.  
  22.     ATI VGA Wonder XL can use the Sierra HiColor RAMDAC.
  23.  
  24. Note that the base register for the ATI extended registers should be read from
  25. the word at 0C000h:10h, as ATI reserves the right to change the base address.
  26. However all current implementations use 1CEh.
  27.  
  28.  
  29. 1CEh index A0h (R/W):  ATI Register 00h                               (28800+)
  30. bit  0-3  Reserved
  31.        4  Enable 16bit ROM
  32.      5-7  Reserved
  33.  
  34. 1CEh index A1h (R/W):  ATI Register 01h                               (28800+)
  35. bit  0-2  Reserved
  36.      3-4  Digital Monitor Detection
  37.      5-7  Reserved
  38.  
  39. 1CEh index A2h (R/W):  ATI Register 02h                               (28800+)
  40. bit  0-7  Reserved
  41.  
  42. 1CEh index A3h (R/W):  ATI Register 03h                               (28800+)
  43. bit 0-2  16bit ROM access
  44.       3  Cursor Start Address bit 17
  45.       4  Display start address bit 17
  46.     5-7  Reserved
  47.  
  48. 1CEh index A4h (R/W):  ATI Register 04h                               (28800+)
  49. bit  0-3  ROM page 0
  50.      4-7  ROM page 1
  51.  
  52. 1CEh index A5h (R/W):  ATI Register 05h                               (28800+)
  53. bit  0-3  ROM page 2
  54.      4-7  ROM page 3
  55.  
  56. 1CEh index A6h (R/W):  ATI Register 06h                               (28800+)
  57. bit  0-6  Reserved
  58.        7  Forced read 3CCh
  59.  
  60. 1CEh index A7h (R/W):  ATI Register 07h                               (28800+)
  61. bit    0  Enable True color mode
  62.      1,3  True Color DAC installed
  63.        2  Reserved
  64.      4-5  Forced pixel data to high
  65.        6  Skew display enable
  66.        7  Enable divide by 3 clock
  67.  
  68. 1CEh index A8h (R/W):  ATI Register 08h                            (28800-5 +)
  69. bit  0-7  Reserved
  70.  
  71. 1CEh index A9h (R/W):  ATI Register 09h                            (28800-5 +)
  72. bit  0-1  Vertical Line Counter bit 8-9
  73.      2-7  Reserved
  74.  
  75. 1CEh index AAh (R/W):  ATI Register 0Ah                            (28800-5 +)
  76. bit  0-3  (R?) Chip Revision ID
  77.        4  Address/Data bus configuration
  78.      5-7  Reserved
  79.  
  80. 1CEh index ABh (R/W):  ATI Register 0Bh                               (28800+)
  81. bit    0  Enable zero wait state support for video memory write
  82.        1  Enable zero wait state for BIOS read
  83.        2  Reserved
  84.        3  Select secondary display
  85.        4  (28800-6 +)  Lock DAC write
  86.        5  (28800-6 +)  Zero wait state enable
  87.        6  Restrict CPU access
  88.        7  Delay internal latching
  89.  
  90. 1CEh index ACh (R/W):  ATI Register 0Ch                            (28800-6 +)
  91. bit    0  Enable Linear Addressing
  92.      1-5  Reserved
  93.        6  Enable 1024x768x16 color planar pass through internal palette
  94.        7  Reserved
  95.  
  96. 1CEh index ADh (R/W):  ATI Register 0Dh                            (28800-6 +)
  97. bit    0  Extended Horizontal Total
  98.        1  Extended CRTC Start Blanking
  99.        2  (28800-6) Extended CRTC Horizontal Retrace
  100.           (Mach 32) Display Start Address bit 18.
  101.        3  Extended CRTC Registers Enable
  102.      4-7  Reserved
  103.  
  104. 1CEh index AEh (R/W):  ATI Register 0Eh
  105. bit  0-1  (Mach 32) Write/Single bank bit 4-5
  106.      2-3  (Mach 32) Read bank bit 4-5
  107.  
  108. 1CEh index AFh (R/W):  ATI Register 0Fh
  109. bit  0-7  Reserved
  110.  
  111. 1CEh index B0h (R/W):  ATI Register 10h
  112. bit    0  Reserved
  113.        1  (188xx) Enable 256 color modes
  114.           (28800 +) Enable alt Video mem organization in text modes
  115.        2  (188xx) Enable 256 color modes
  116.           (28800 +) Extended Cursor Start Address
  117.        3  (188xx) Enable 8 CRT accesses for each CPU access
  118.      3-4  (28800-4 +)  Video memory: 0=256k, 1=1M, 2=512K
  119.        4  (28800-2)  Video memory: 0=256k, 1=512k
  120.        5  (28800 +) Enable 256 color modes if set
  121.        6  (28800 +) Display Start Address bit 16
  122.      6-7  (188xx) Display Start Address bit 16-17
  123.  
  124. 1CEh index B1h (R/W):  EGA Compatibility and Double Scanning Enable
  125. bit    0  Force all I/O addresses to be EGA compatible if set
  126.        1  Force all registers to be EGA compatible if set
  127.        2  General purpose read/write
  128.      3-5  Double scanning/3 of 4 scanning enable
  129.             1: Enable double scanning in graphics mode
  130.             2: Enable 3 of 4 scanning in graphics mode
  131.             5: Enable double scanning in text mode
  132.             6: Enable 3 of 4 scanning in text mode
  133.        6  Divide vertical timing parameters by 2 if set
  134.        7  Reserved
  135.  
  136. 1CEh index B2h (R/W):  Memory Page Select
  137. bit    0  (18800) Enable interlace if set
  138.           (18800-1) reserved
  139.           (28800 +) Read bank no bit 3
  140.      1-3  (18800-1) Write/Single bank no.
  141.      1-4  (28800 +) Write/Single bank no
  142.           (18800) Bank no. in 64 chunks
  143.        5  (18800) Enable internal DIP switch settings (EGA mode)
  144.        6  (18800) External clock select. If set 3C2h bits 2-3 selects from
  145.                   (44.9 MHz, 50.175, <spare>, 36) rather than (50.175MHz,
  146.                   56.644,<spare>, 44.9)
  147.        7  (18800) Reserved
  148.      5-7  (18800-1 +) Read bank no
  149.  
  150. 1CEh index B3h (R/W):  ATI Register 13h
  151. bit    0  EEPROM data input
  152.        1  EEPROM clock source
  153.        2  Enable EEPROM interface
  154.        3  EEPROM chip select
  155.        4  (18800?)  Enable PS/2 decoding
  156.           (18800-1) Disable memory beyond 256K
  157.        5  (28800 +) XOR with input status bit HSYNC to select 8 or 16 bit
  158.                     video memory operation
  159.        6  (18800) Enable 1 CRT access to 1 CPU access
  160.           (18800-1 +)  Enable 1024x768 16 color planar pixel mode
  161.        7  Enable double scanning for 200 line modes
  162. Note: This register should not be modified on revision 1 chips.
  163.  
  164. 1CEh index B4h (R/W):  Emulation Control
  165. bit    0  Enable CGA emulation if set
  166.        1  Enable Hercules emulation if set
  167.        2  Write Protect CR90-94,CR97
  168.        3  Write Protect all vertical timing registers if set
  169.        4  Write Protect cursor start and end if set
  170.        5  Write Protect CR80-86 and CR140-144
  171.        6  Write Protect CR0-7 instead of CR117
  172.        7  Override locking of CR117
  173.  
  174. 1CEh index B5h (R/W):  ATI Register 15h
  175. bit    0  Select display enable as blanking signal
  176.        1  Invert blanking signal polarity
  177.        2  Enable display signal skew
  178.        3  Select Map 3 as programmable character generator
  179.        4  (18800-1 +) Enable 8 simultaneous fonts if set
  180.                       Background is then always 0, and bit 4-7 of an
  181.                       attribute selects the font.
  182.        5  Disable Cursor Blinking if set
  183.        6  Enable CGA Cursor Emulation if set
  184.           Adds 5 to the cursor start and end registers.
  185.        7  Select undivided input clock as pixel clock
  186.  
  187. 1CEh index B6h (R/W):  High Resolution Enable
  188. bit    0  (28800-4 +) Set to enable display to cross the 256K limit
  189.                       (512K in 256color modes).
  190.        1  Enable 640x400 Hercules emulation
  191.        2  Enable linear addressing in 256color modes
  192.        3  Select 4 color high res modes
  193.        4  Select 16 color high res modes
  194.        5  Enable vertical interrupts
  195.        6  (18800 - 28800-3) Enable linear addressing
  196.           (?) Select composite sync for output
  197.        7  Disable blanking screen blank in CGA and Hercules emulation
  198.  
  199. 1CEh index B7h (R/W):  ATI Register 17h
  200. bit    0  16bit operation if set, 8bit if clear
  201.        1  PS/2 configuration
  202.        2  Video memory is DRAM if set, VRAM if clear
  203.        3  EEPROM data
  204.        4  Status of ROM address decode
  205.        5  Select I/O address at 3xxh or 2xxh
  206.      6-7  Reserved
  207.  
  208. 1CEh index B8h (R/W):  Write Protect and Clock Select
  209. bit    0  Lock Palette registers in Attribute Controller if set
  210.        1  Lock Overscan register in Attribute Controller if set
  211.        2  Lock All VGA registers except CRTC start and end if set
  212.        3  Lock write to 3C2h if set
  213.        4  Lock horizontal sync polarity if set
  214.        5  Lock vertical sync polarity if set
  215.      6-7  Clock divider. Divide Video Clock by: 0: 1, 1: 2, 2: 3, 3: 4
  216.  
  217. 1CEh index B9h (R/W):  ATI Register 19h
  218. bit    0  Clock select
  219.        1  (18800-1 +) Select input to clock chip. See index BEh bit 4
  220.      2-3  ROM address space.
  221.             0: 32k at C000h, 1: 28k at C000h, 2,3: 24k at C000h
  222.      4-5  Wait cycles for 16 bit ROM access:
  223.             0: 8 cycles, 1: 4 cycles, 2: 2 cycles, 3: none
  224.        6  (?) Set horizontal total = register value +2 (vs +5)
  225.           (?) I/O operations are 16bits if set, 8 if clear
  226.        7  Lock Line Compare register
  227.  
  228. 1CEh index BAh (R/W):  ATI Register 1Ah
  229. bit  0-2  Delay chain timing compensation for TTL monitors and 16color RGB
  230.           simulation
  231.        3  Disable secondary Red output (for RGB monitors)
  232.        4  Enable EGA color simulation for RGB monitors
  233.        5  Enable monochrome grey scale circuit
  234.        6  reserved
  235.        7  Delay chain resolution compensation
  236.  
  237. 1CEh index BBh (R/W):  Input Status Register
  238. bit  0-3  Monitor Type:
  239.             0: EGA
  240.             1: PS/2 Analog Monochrome
  241.             2: TTL Monochrome
  242.             3: PS/2 Color
  243.             4: RGB Color
  244.             5: MultiSync
  245.             7: PS/2 8514
  246.             8: Seiko 1430
  247.             9: NEC Multisync 2A
  248.             A: Crystalscan 860/Tatung 1439
  249.             B: NEC Multisync 3D
  250.             C: TVM 3M
  251.             D: NEC MultiSync XL
  252.             E: TVM 2A
  253.             F: TVM 3A
  254.        4  (188xx) General read/write bit
  255.           (28800 +) Bit 4 of the Monitor Type above
  256.        5  (188xx) Video memory is 512Kbytes if set, 256K else
  257.      6-7  Reserved
  258.  
  259. 1CEh index BCh (R/W):  ATI Register 1Ch
  260. bit  0-7  reserved
  261.  
  262. 1CEh index BDh (R/W):  EGA Switch Settings
  263. bit    0  Invert Composite Sync Polarity
  264.        2  (28800-5) 128K CPU address
  265.      4-7  EGA switch settings
  266.  
  267. 1CEh index BEh (R/W):  ATI Register E                              (not 18800)
  268. bit    0  Unlock Vertical Display End register of the CRT Controller
  269.        1  Enable interlace mode
  270.        2  Select internal EGA DIP switch value
  271.        3  Dual bank mode if set, single else
  272.        4  (18800-1 without 18810 Clock Chip (V4)) External clock select.
  273.               If set 3C2h bits 2-3 selects from (44.9 MHz, 50.175, <spare>,
  274.               36) rather than (50.175MHz, 56.644, <spare>, 44.9)
  275.        4  (18800-1 with 18810 ClockChip, 28800 +) Clock Select
  276.               BEh bit 4: B9h bit 1: 3C2h bit 3: 3C2h bit 2:   Frequency:
  277.                   0          0          0           0           42.954 MHz
  278.                   0          0          0           1           48.771
  279.                   0          0          1           0           Ext 0 (16.657)
  280.                   0          0          1           1           36.000
  281.                   0          1          0           0           50.350
  282.                   0          1          0           1           56.640
  283.                   0          1          1           0           Ext 1 (28.322)
  284.                   0          1          1           1           44.900
  285.                   1          0          0           0           30.240
  286.                   1          0          0           1           32.000
  287.                   1          0          1           0           37.500
  288.                   1          0          1           1           39.000
  289.                   1          1          0           0           40.000
  290.                   1          1          0           1           56.644
  291.                   1          1          1           0           75.000
  292.                   1          1          1           1           65.000
  293.        6  Enable 1024x768 16 color mode
  294.        7  Enable 1024x768 4 color mode
  295.  
  296. 1CEh index BFh (R/W):  Miscellaneous Register
  297. bit    0  ??
  298.        6  ROM page address bit
  299.        7  Alternate memory organisation for graphics enable
  300.  
  301. 3C0h (R/W):  Palette index register
  302. bit 4-5  Mode 67h Palette
  303.          Value   Pixel=0    1      2         3
  304.           0       Black  White  Grey      Bright White
  305.           1       Black  Green  Red       Yellow
  306.           2       Black  Cyan   Red       White
  307.           3       Black  Cyan   Magenta   White
  308.  
  309. Note:  The ATI chips handles the indexed registers slightly differently
  310.        from other VGA chips, as the index register must be written before
  311.        each read or write of the associated data register.
  312.  
  313. 0AEEh W(R/W):                                                   (Mach 32 only)
  314. bit 0-15  Lower bits of the address (in DWORDs) of the cursor map in video
  315.           memory. The upper bits are in 0EEEh. The cursor map is a 64x64 pixel
  316.           map with two bits per pixel.
  317.  
  318. 0EEEh W(R/W):                                                   (Mach 32 only)
  319. bit 0-14  Upper bits of the address of the cursor map. Low bits are in 0AEEh.
  320.       15  Set to enable the Hardware Cursor
  321.  
  322. 12EEh W(R):                                                     (Mach 32 only)
  323. bit    0  If set the VGA is enabled.
  324.      1-3  Bustype: 0: ISA, 1:EISA, 2:MCA, 3: MCA32, 4: Local Bus 386SX,
  325.            5: Local Bus 386, 6: Local Bus 486
  326.      4-6  Memory: 0: DRAM x4, 1: VRAM x4, 3: DRAM x16
  327.     9-11  DAC: 0: ATI 68830, 1: ATT20c491, 2: ATI 68875, 3: Bt476, 4: Bt481,
  328.            5: ATI 68860
  329.  
  330. 12EE W(W):                                                      (Mach 32 only)
  331. bit 0-15  Cursor X-position relative to the address in 2AEEh & 2EEEh
  332.  
  333. 16EE W(W?):                                                     (Mach 32 only)
  334. bit 0-15  Cursor Y-position relative to the address in 2AEEh & 2EEEh
  335.  
  336. 1AEEh W(R/W):                                                   (Mach 32 only)
  337. bit  0-7  Cursor Color FG ?
  338.     8-15  Cursor Color BG ?
  339.  
  340. 1EEEh (R/W):                                                    (Mach 32 only)
  341. bit  0-5  First horizontal pixel actually used within the 64x64 cursor map.
  342.  
  343. 1EEFh (R/W):                                                    (Mach 32 only)
  344.      0-5  Number of lines shown in the cursor
  345.  
  346. 2AEEh W(R/W):  Cursor Position Low                              (Mach 32 only)
  347. bit 0-15  Lower bits of the address of the cursor in DWORDs, calculated as:
  348.            [(Y position)*(bytes per scanline)+(X pos)*(bytes per pixel)]/4
  349.           The upper bits are in 2EEEh. This co-ordinates used in this
  350.           calculation must be modulo 8 and <= the actual position. The values
  351.           in 12EEh and 16EEh are added to give the actual cursor position.
  352.  
  353. 2EEEh W(R/W):  Cursor Position High                             (Mach 32 only)
  354. bit 0-15  Upper bits of the address of the cursor. Lower bits are in 2AEEh.
  355.  
  356. 36EEh (R/W):                                                    (Mach 32 only)
  357. bit  2-3  Memory: 0: 512K, 1: 1MB, 2: 2MB, 3: 4MB
  358.  
  359. 52EEh (R/W):                                                    (Mach 32 only)
  360. bit  0-6  ROM address: 0: C000h, 1: C080h, 2: C100h ...
  361.        7
  362.  
  363. 5EEEh W(R/W):                                                   (Mach 32 only)
  364. bit  0-1  Aperture: 0: Disabled, 1: 1MB, 2: 4MB
  365.     8-15  Aperture address
  366.  
  367. 9AEEh (R/W):                                                    (Mach 32 only)
  368. bit    0  Set if busy ?
  369.  
  370.  
  371.  
  372. Bank Switching
  373.  
  374.   Bank switching can use either one single bank register or two
  375.   separate read and write bank registers (18800-2 and 28800 Only).
  376.   Banks map to 64k boundaries.
  377.  
  378. Reserved locations:
  379.  
  380.   $C000:$10   2 bytes   ATI Register (usually $1CE).
  381.   $C000:$31   9 bytes   '761295520' ID's ATI product
  382.   $C000:$40   2 bytes   '31' ID's ATI Super VGA
  383.                         '32' = ATI EGA Wonder 800+
  384.                         '22' = ATI EGA Wonder
  385.                        ?+'3' = ATI Basic-16
  386.   $C000:$42   1 byte    Bit 0  Set for 16-bit boards
  387.                             1  Mouseport present if set
  388.                             2  Non-interlace if set
  389.                             3  Microchannel if set, PC/AT else
  390.                             4  Use clock chip if set
  391.                             7  Use C000:0000 to D000:FFFF with 16 bit ROM
  392.                                if set
  393.   $C000:$43   1 byte    Gate revision. 
  394.                            '1' = 18800   (V3),
  395.                            '2' = 18800-1 (V4/V5),
  396.                            '3' = 28800-2 (V6).
  397.                            '4' = 28800-4  VGA Wonder+
  398.                            '5' = 28800-5  VGA Wonder XL
  399.                            'a' = 68800   Mach-32
  400.                         Note: Types '6' and 'c' have been reported
  401.   $C000:$44   1 byte    Bit 0  If clear the board can support 70Hz 
  402.                                non-interlaced refresh 
  403.                             1  If set the board supports Korean characters
  404.                                in VGA mode 
  405.                             2  If set the board uses 45MHz memory clock
  406.                             3  If set the board supports zero wait states.
  407.                             4  If set the board uses paged ROMs.
  408.                             6  If clear there is 8514/A hardware on board
  409.                                (Graphics Ultra)
  410.                             7  If set there is a 32K color DAC on board. 
  411.   $C000:$4C   1 byte    Major Bios version
  412.   $C000:$4D   1 byte    Minor Bios version
  413.  
  414.  
  415.  
  416.  
  417.   ID ATI Super VGA Chip Set
  418.  
  419.   if (getbios($31,9)='761295520') and (getbios($40,2)='31') then
  420.   begin
  421.     {ATI_Super_VGA}
  422.     case mem[$C000:$43] of
  423.       $31: ATI 18800;
  424.       $32: ATI 18800-1;
  425.       $33: ATI 28800-2;
  426.       $34: ATI 28800-4;
  427.       $35: ATI 28800-5;
  428.       $61: ATI Graphics Ultra Pro;
  429.     else unknown_ATI
  430.     end
  431.   end;
  432.  
  433.  
  434.  
  435.   Video Modes:
  436.     23h  T   132   25  16  (8x14)
  437.     27h  T   132   25   2  (8x14)
  438.     33h  T   132   44  16  (8x8)
  439.     37h  T   132   44   2  (8x8)
  440.     51h  G   640  480  16  PL4      ATI EGA Wonder only
  441.     52h  G   752  410  16  PL4      ATI EGA Wonder only
  442.     53h  G   800  560  16  PL4
  443.     54h  G   800  600  16  PL4
  444.     55h  G  1024  768  16  PL4      (V4 or later)
  445.     58h  T    80   33  16  (8x8)
  446.     5Bh  T    80   30      (8x16)
  447.     61h  G   640  400 256  P8
  448.     62h  G   640  480 256  P8
  449.     63h  G   800  600 256  P8
  450.     64h  G  1024  768 256  P8       V6 (VGA Wonder +) or later
  451.     65h  G  1024  768  16  P4       ****  See note
  452.     67h  G  1024  768   4  PL2E     ****  See note
  453.     6Ah  G   800  600  16  PL4      Undocumented ??
  454.     72h  G   640  480 32k  P15      V7 (XL) only
  455.     73h  G   800  600 32k  P15      V7 (XL) only
  456.     75h  G   640  480 16m  P24      XL24 only
  457.  
  458. Note: ATI Prism Elite uses a Trident chip and Trident mode numbers.
  459.  
  460.     ATI enhanced Graphics modes do NOT support INT 10h with AH=
  461.       01h..0Eh or 11h or 13h.
  462.  
  463.  
  464.     Mode 65h  1024x768 16 color
  465.       4 bits per pixel packed mode
  466.       Even pixel is in bits 0-3 of the byte, odd in bits 4-7.
  467.  
  468.     Mode 67h  1024x768  4 color
  469.       2 bits per pixel planar mode
  470.       Even pixels are in plane 2&3, odd pixels in plane 0&1.
  471.  
  472.  
  473.   BIOS extensions:
  474.  
  475. ----------1012--BH55-------------------------
  476. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  477.         AH = 12h
  478.         BH = 55h
  479.         BL = subfunction
  480.               00h disabled enhanced features
  481.               01h enable enhanced features
  482.               02h get status
  483. Return:           AL = status flags
  484.                        bit    3  set if enhanced features enabled
  485.                        bits 7-5  monitor type
  486.                                  000 PS/2 mono
  487.                                  001 PS/2 color
  488.                                  010 multi-sync
  489.                                  011 Taxan 650 25kHz
  490.                                  100 RGB
  491.                                  101 mono
  492.                                  110 EGA
  493.                                  111 Compaq internal
  494.               03h disable register trapping (CGA emulation)
  495.               04h enable register trapping
  496.               05h program mode described by table at ES:BP
  497.               06h get mode table
  498.                   AL = video mode
  499.                   BP = FFFFh  (Known illegal value).
  500.                   SI = 0000h  (Known illegal value).
  501. Return:           ES:BP -> table suitable for mode AL (and subfnc BL=05h)
  502.                   BP = FFFFh on error
  503.  
  504. Format of ATI VGA Wonder video mode table:
  505. Offset  Size     Description
  506.  00h    BYTE     number of columns
  507.  01h    BYTE     maximum row (number of rows - 1)
  508.  02h    BYTE     scan lines per row
  509.  03h    WORD     video buffer size in bytes
  510.  05h   4 BYTEs   values for Sequencer registers 1-4
  511.  09h    BYTE     value for Miscellaneous Output register
  512.  0Ah   25 BYTEs  values for CRTC registers 00h-18h
  513.                   00h horizontal total size (chars)
  514.                   01h horizontal displayed (chars)
  515.                   02h horizontal sync position (chars)
  516.                   03h horizontal sync width (chars)
  517.                   04h vertical total size (char rows)
  518.                   05h vertical total adjust (scan lines)
  519.                   06h vertical displayed (char rows)
  520.                   07h vertical sync position (char rows)
  521.                   08h interlace mode
  522.                   09h max scan line in row
  523.                   0Ah cursor start scan line
  524.                   0Bh cursor end scan line
  525.                   0Ch screen memory start (high)
  526.                   0Dh screen memory start (low)
  527.                   0Eh cursor address (high)
  528.                   0Fh cursor address (low)
  529.                   10h light pen (high)
  530.                   11h light pen (low)
  531.  23h   20 BYTEs  default palette (values for Attribute Controller regs
  532.                  00h-13h)
  533.  37h   9 BYTEs   values for Graphics Controller registers 00h-08h
  534.